#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMessageBox>
#include <QCloseEvent>
#include <QTableWidget>
#include <QTableWidgetItem>
#include "user.h"
#include "databasemanager.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(const User &user, QWidget *parent = nullptr);
    ~MainWindow();

    // 设置当前用户
    void setCurrentUser(const User &user);

protected:
    // 关闭事件处理
    void closeEvent(QCloseEvent *event) override;

private slots:
    // 用户信息按钮点击事件
    void on_userInfoButton_clicked();
    
    // 用户管理按钮点击事件
    void on_userManageButton_clicked();
    
    // 退出登录按钮点击事件
    void on_logoutButton_clicked();
    
    // 退出系统按钮点击事件
    void on_exitButton_clicked();

private:
    Ui::MainWindow *ui;
    User m_currentUser;
    DatabaseManager *m_dbManager;
    
    // 显示用户信息
    void showUserInfo();
    
    // 显示用户管理界面
    void showUserManagement();
    
    // 刷新用户列表
    void refreshUserList();
    
    // 显示错误信息
    void showError(const QString &message);
    
    // 显示成功信息
    void showSuccess(const QString &message);
    
    // 退出登录
    void logout();

signals:
    // 登出请求信号：用于通知登录窗口返回初始页面
    void logoutRequested();
};

#endif // MAINWINDOW_H
